﻿namespace OilRigSumoWrestlers
{
    public enum CollisionType
    {
        Player = 0,
        Ground,
        Deadly,
        Event,
        Push,
        Bounce
    }

    public enum InputType
    {
        MenuForwards = 0,
        MenuBack,
        MenuSelectNext,
        MenuSelectPrevious,
        Menu,
        Jump,
        Left,
        Right,
        Up,
        Down,
        Push
    }

    public static class GameConstant
    {

        public const bool FullScreen = false;

        //Sound
        public const int SOUND_WALK_DELAY = 200;//in millis

        #region PHYSICS
        public const float GRAVITY_Y = -0.3f;
        public const float AIR_FRICTION = 0.001f;		//Currently not being used
        public const float GROUND_FRICTION = 0.98f;		//Remaining energy after collision with ground
		public const float OIL_FRICTION = 0.99f;		//Remaining energy after collision with oil
        #endregion

        #region PLAYER
        public const float PLAYER_MASS = 2.8f;
		public const float PLAYER_MAX_SPEED = 0.036f;
		public const float PLAYER_ACCELERATION = 0.0024f;
		public const float PUSH_FORCE = .04f;
		public const float PUSHERS_FORCE = .008f;
		public const float MAX_VELOCITY_AFTER_PUSH = .05f;
		public const float PLAYER_JUMP = 0.012f;
        public const int   PLAYER_PUSH_COOLDOWN = 750;//in millis
        #endregion

        #region AI
        public const float AI_MIN_PUSH_DIST = 2.5f;
        public const float AI_MAX_PUSH_DIST = 3.75f;
        public const float AI_EVADE_TENDENCY = 600;
        public const int AI_DESTINATION_CHANGE_TIME = 3000;//in millis
        public const int AI_AVOID_TIME = 150;//in millis
        public const float AI_AVOID_VELOCITY_MULTIPLIER = 1.5f;
        public const int AI_ATTACK_PREDICTION_MODIFIER = 50;
        public const float AI_PUSH_CHANCE = 0.5f;
        #endregion

        #region CONTROLS
        public const string PUSH = "p";
        public const string MENU = "m";
        public const string MENU_NEXT = "mn";
        public const string MENU_PREVIOUS = "mp";
        public const string MENU_FORWARD = "mf";
        public const string MENU_BACK = "mb";

        public const string LEFT = "l";
        public const string RIGHT = "r";
        public const string UP = "u";
        public const string DOWN = "d";
        #endregion

        #region LEVEL

        public const int LVL_LEVELSIZE = 8;
        public const int LVL_TILESIZE = 6;

        public const int LVL_HOLE = 0;
        public const int LVL_FLOOR = 1;
        public const int LVL_OIL = 2;
        public const int LVL_TOWER = 3;
        public const int LVL_BARREL = 4;
        public const int LVL_WALL = 5;
        public const int LVL_P1 = 10;
        public const int LVL_P2 = 20;
        #endregion

    } 
}
